<html>
<head><meta charset="utf-8"><title>PR #83915 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html">PR #83915</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="235421351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235421351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235421351">(Apr 20 2021 at 21:43)</a>:</h4>
<p>I'm looking at <a href="https://github.com/rust-lang/rust/issues/83915">#83915</a>, cc <span class="user-mention" data-user-id="119031">@Esteban Küber</span> and <span class="user-mention" data-user-id="116083">@pnkfelix</span></p>



<a name="235421362"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235421362" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235421362">(Apr 20 2021 at 21:43)</a>:</h4>
<p>I'm trying to decide where I think this code should live</p>



<a name="235421395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235421395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235421395">(Apr 20 2021 at 21:44)</a>:</h4>
<p>It's a bit complicated and it interacts with my old nemesis, <a href="https://github.com/rust-lang/rust/issues/25860">https://github.com/rust-lang/rust/issues/25860</a></p>



<a name="235421475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235421475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235421475">(Apr 20 2021 at 21:44)</a>:</h4>
<p>in particular, we don't normally enforce WF bounds on fn arguments or return types</p>



<a name="235421498"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235421498" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235421498">(Apr 20 2021 at 21:44)</a>:</h4>
<p>It's been a while. I remember trying 5 other approaches and for some reason or another they were either overly restrictive or weren't properly picked up</p>



<a name="235421547"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235421547" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235421547">(Apr 20 2021 at 21:45)</a>:</h4>
<p>yeah, it's ok</p>



<a name="235421552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235421552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235421552">(Apr 20 2021 at 21:45)</a>:</h4>
<p>what I landed at there was the place were I got it to work as expected :)</p>



<a name="235421563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235421563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235421563">(Apr 20 2021 at 21:45)</a>:</h4>
<p>it's a lot more subtle than I thought at first</p>



<a name="235421585"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235421585" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235421585">(Apr 20 2021 at 21:45)</a>:</h4>
<p>I appreciate why you found it so challenging</p>



<a name="235421715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235421715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235421715">(Apr 20 2021 at 21:46)</a>:</h4>
<p>I <em>think</em> the right place to enforce this, to be maximally consistent, is at the point where we evaluate <code>F::Output</code></p>



<a name="235421756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235421756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235421756">(Apr 20 2021 at 21:46)</a>:</h4>
<p>I guess let me dig a bit into how the code works here</p>



<a name="235422364"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235422364" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235422364">(Apr 20 2021 at 21:52)</a>:</h4>
<p><span class="user-mention" data-user-id="119031">@Esteban Küber</span> stupid question -- how do you check if a type references <code>Err</code> again?</p>



<a name="235422388"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235422388" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235422388">(Apr 20 2021 at 21:53)</a>:</h4>
<p>IIRC <code>ty.references_error()</code>, checking</p>



<a name="235422408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235422408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235422408">(Apr 20 2021 at 21:53)</a>:</h4>
<p>yeah, that's it</p>



<a name="235422411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235422411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235422411">(Apr 20 2021 at 21:53)</a>:</h4>
<p>thanks</p>



<a name="235423821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235423821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235423821">(Apr 20 2021 at 22:06)</a>:</h4>
<p>so.. I have an alternate fix I think I like better</p>



<a name="235424251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235424251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235424251">(Apr 20 2021 at 22:11)</a>:</h4>
<p>I'm listening</p>



<a name="235424268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235424268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235424268">(Apr 20 2021 at 22:11)</a>:</h4>
<p>though my diff is a bit rough</p>



<a name="235424328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235424328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235424328">(Apr 20 2021 at 22:11)</a>:</h4>
<p>basically the idea is that we only make it legal to project <code>Output</code> if the return type is sized</p>



<a name="235424375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235424375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235424375">(Apr 20 2021 at 22:12)</a>:</h4>
<p>the way that fn pointers work now--</p>



<a name="235424425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235424425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235424425">(Apr 20 2021 at 22:12)</a>:</h4>
<p>we check that the types of the fn arguments and return type are WF only at the point where we've instantiated all of its higher-ranked lifetimes</p>



<a name="235424441"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235424441" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235424441">(Apr 20 2021 at 22:12)</a>:</h4>
<p>I'm not sure if this is 100% the right fix</p>



<a name="235424475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235424475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235424475">(Apr 20 2021 at 22:13)</a>:</h4>
<p>the other option would be to enforce it in the select place, which I think is closer to what you wrote already</p>



<a name="235424569"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235424569" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235424569">(Apr 20 2021 at 22:14)</a>:</h4>
<p>let me take another look at that</p>



<a name="235424652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235424652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235424652">(Apr 20 2021 at 22:15)</a>:</h4>
<p>the reason I chose the projection point is that it is precisely the point where all late-bound lifetimes are to have been instantiated</p>



<a name="235424723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235424723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235424723">(Apr 20 2021 at 22:15)</a>:</h4>
<p>but do we need lifetimes to be instantiated at all for <code>Sized</code>ness checks?</p>



<a name="235424943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235424943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235424943">(Apr 20 2021 at 22:17)</a>:</h4>
<p>no, not really</p>



<a name="235424948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235424948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235424948">(Apr 20 2021 at 22:17)</a>:</h4>
<p>I think I'm deciding I don't like this fix</p>



<a name="235425003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425003">(Apr 20 2021 at 22:18)</a>:</h4>
<p>what should be happening is roughly this</p>



<a name="235425038"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425038" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425038">(Apr 20 2021 at 22:18)</a>:</h4>
<p>for every <code>fn</code> type, such as (say) <code>for&lt;'a&gt; fn(&amp;'a u32) -&gt; &amp;'a u32</code></p>



<a name="235425050"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425050" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425050">(Apr 20 2021 at 22:18)</a>:</h4>
<p>there is effectively a synthesized impl like</p>



<a name="235425074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425074">(Apr 20 2021 at 22:19)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">impl</span><span class="o">&lt;'</span><span class="na">a</span><span class="o">&gt;</span><span class="w"> </span><span class="nb">Fn</span><span class="o">&lt;</span><span class="p">(</span><span class="o">&amp;'</span><span class="na">a</span><span class="w"> </span><span class="kt">u32</span><span class="p">,)</span><span class="o">&gt;</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="k">fn</span><span class="p">(</span><span class="o">&amp;'</span><span class="na">a</span><span class="w"> </span><span class="kt">u32</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Output</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;'</span><span class="na">a</span><span class="w"> </span><span class="kt">u32</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="235425086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425086">(Apr 20 2021 at 22:19)</a>:</h4>
<p>note the interesting implication here:</p>



<a name="235425095"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425095" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425095">(Apr 20 2021 at 22:19)</a>:</h4>
<p>there is no impl where the binder is <em>on the <code>fn</code> type</em></p>



<a name="235425096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425096">(Apr 20 2021 at 22:19)</a>:</h4>
<p>the binder moves to the impl</p>



<a name="235425123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425123">(Apr 20 2021 at 22:19)</a>:</h4>
<p>I don't think the code totally gets this right</p>



<a name="235425136"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425136" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425136">(Apr 20 2021 at 22:19)</a>:</h4>
<p>maybe it does</p>



<a name="235425201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425201">(Apr 20 2021 at 22:20)</a>:</h4>
<p>in any case, normally, if we had an explicit impl like that, we would check at that point that <code>Output: Sized</code></p>



<a name="235425207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425207">(Apr 20 2021 at 22:20)</a>:</h4>
<p>but there is no explicit impl</p>



<a name="235425250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425250">(Apr 20 2021 at 22:20)</a>:</h4>
<p>if we add this into the select code</p>



<a name="235425259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425259">(Apr 20 2021 at 22:20)</a>:</h4>
<p>we've effectively got an impl like</p>



<a name="235425294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425294">(Apr 20 2021 at 22:21)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">impl</span><span class="o">&lt;'</span><span class="na">a</span><span class="o">&gt;</span><span class="w"> </span><span class="nb">Fn</span><span class="o">&lt;</span><span class="p">(</span><span class="o">&amp;'</span><span class="na">a</span><span class="w"> </span><span class="kt">u32</span><span class="p">,)</span><span class="o">&gt;</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="k">fn</span><span class="p">(</span><span class="o">&amp;'</span><span class="na">a</span><span class="w"> </span><span class="kt">u32</span><span class="p">)</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="o">&amp;'</span><span class="na">a</span><span class="w"> </span><span class="kt">u32</span>: <span class="nb">Sized</span> <span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Output</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;'</span><span class="na">a</span><span class="w"> </span><span class="kt">u32</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="235425315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425315">(Apr 20 2021 at 22:21)</a>:</h4>
<p>the other option though is to add this into the WF conditions for a <code>fn</code> type; I was hesitating here, because of the binder questions</p>



<a name="235425357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425357">(Apr 20 2021 at 22:21)</a>:</h4>
<p>I guess my concern is stuff like this</p>



<a name="235425421"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425421" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425421">(Apr 20 2021 at 22:22)</a>:</h4>
<p><code>for&lt;'a, 'b&gt; fn(...) -&gt; &amp;'a &amp;'b u32</code></p>



<a name="235425428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425428">(Apr 20 2021 at 22:22)</a>:</h4>
<p>here, this should really require that we know somehow that <code>'b: 'a</code></p>



<a name="235425447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425447">(Apr 20 2021 at 22:22)</a>:</h4>
<p>but this isn't really relevant to being Sized</p>



<a name="235425464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425464">(Apr 20 2021 at 22:22)</a>:</h4>
<p>(this is precisely where the connection to <a href="https://github.com/rust-lang/rust/issues/25860">#25860</a> comes from)</p>



<a name="235425515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425515">(Apr 20 2021 at 22:23)</a>:</h4>
<p>it feels like there is some missing logic here to check for well-formedness more generally</p>



<a name="235425532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425532">(Apr 20 2021 at 22:23)</a>:</h4>
<p>but probably fixing all this could wait for chalk,</p>



<a name="235425595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425595">(Apr 20 2021 at 22:24)</a>:</h4>
<p>and we could <em>just</em> check the <code>Sized</code> constraint without things going too bonkers</p>



<a name="235425597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425597">(Apr 20 2021 at 22:24)</a>:</h4>
<p>I think the assumption was that the _other_ existing WF checks when calling it would cause this to be unusable</p>



<a name="235425602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425602">(Apr 20 2021 at 22:24)</a>:</h4>
<p>making this not need a WF check</p>



<a name="235425646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425646">(Apr 20 2021 at 22:25)</a>:</h4>
<p>also, I wonder if WF is what we want to check here for, thinking about the fact that adding such a check to <code>type</code> is backwards incompatible</p>



<a name="235425654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425654">(Apr 20 2021 at 22:25)</a>:</h4>
<p>right, the assumption was basically that the checks occur at the point of fully instantiating the higher-ranked parameters, but that doesn't work well with generic code</p>



<a name="235425670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425670">(Apr 20 2021 at 22:25)</a>:</h4>
<p>unless we move the checks into the select logic</p>



<a name="235425671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425671">(Apr 20 2021 at 22:25)</a>:</h4>
<p>right</p>



<a name="235425999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235425999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235425999">(Apr 20 2021 at 22:28)</a>:</h4>
<p><a href="https://rust-lang.github.io/rfcs/1214-projections-lifetimes-and-wf.html">RFC 1214</a> writes:</p>



<a name="235426009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235426009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235426009">(Apr 20 2021 at 22:29)</a>:</h4>
<blockquote>
<p>Several points in the list above made use of implied bounds based on assuming that various types were WF. We have to ensure that those bounds are checked on the reciprocal side, as follows:</p>
<p>Fns being called. Before calling a fn, we check that its argument and return types are WF. This check takes place after all higher-ranked lifetimes have been instantiated. Checking the argument types ensures that the implied bounds due to argument types are correct. Checking the return type ensures that the resulting type of the call is WF.</p>
<p>Method calls, "UFCS" notation for fns and constants. These are the two ways to project a value out of a trait reference. A method call or UFCS resolution will require that the trait reference is WF according to the rules given above.</p>
<p>Normalizing associated type references. Whenever a projection type like T::Foo is normalized, we will require that the trait reference is WF.</p>
</blockquote>



<a name="235426039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235426039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235426039">(Apr 20 2021 at 22:29)</a>:</h4>
<p>But I think there's a kind of problem with this</p>



<a name="235426052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235426052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235426052">(Apr 20 2021 at 22:29)</a>:</h4>
<p>which seems obvious in retrospect</p>



<a name="235426064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235426064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235426064">(Apr 20 2021 at 22:29)</a>:</h4>
<p>it's always the same problem with any kind of rule like this, I should know by now to be suspicious of it</p>



<a name="235426163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235426163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235426163">(Apr 20 2021 at 22:30)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">fn</span> <span class="nf">foo</span><span class="o">&lt;</span><span class="n">F</span>: <span class="nb">FnOnce</span><span class="o">&lt;</span><span class="p">()</span><span class="o">&gt;&gt;</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">F</span>::<span class="n">Output</span>::<span class="n">a</span><span class="p">();</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="235426187"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235426187" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235426187">(Apr 20 2021 at 22:30)</a>:</h4>
<p><code>foo</code> gets to assume that <code>F::Output: Sized</code></p>



<a name="235426201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235426201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235426201">(Apr 20 2021 at 22:30)</a>:</h4>
<p>but the caller never has to prove it</p>



<a name="235426278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235426278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235426278">(Apr 20 2021 at 22:31)</a>:</h4>
<p>I'm not sure how readily one can weaponize this</p>



<a name="235426598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235426598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235426598">(Apr 20 2021 at 22:34)</a>:</h4>
<p>and of course there are examples like this</p>



<a name="235426614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235426614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235426614">(Apr 20 2021 at 22:34)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">fn</span> <span class="nf">weird_situation</span><span class="o">&lt;</span><span class="n">F</span>: <span class="nb">FnOnce</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="kt">str</span><span class="o">&gt;</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="fm">println!</span><span class="p">(</span><span class="s">"if this is reachable, there’s a function type with unsized Output type `str`"</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="n">weird_situation</span>::<span class="o">&lt;</span><span class="k">fn</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="kt">str</span><span class="o">&gt;</span><span class="p">()</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="235426653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235426653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235426653">(Apr 20 2021 at 22:34)</a>:</h4>
<p>my fix, however, fixes all the sort of <em>known</em> problems-- definitely all the problems on <em>stable</em></p>



<a name="235427021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235427021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235427021">(Apr 20 2021 at 22:38)</a>:</h4>
<p>pushed to issue-82633-sized-return-types on my fork</p>



<a name="235427063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235427063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235427063">(Apr 20 2021 at 22:38)</a>:</h4>
<p><a href="https://github.com/nikomatsakis/rust/tree/issue-82633-sized-return-types">https://github.com/nikomatsakis/rust/tree/issue-82633-sized-return-types</a></p>



<a name="235427180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235427180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235427180">(Apr 20 2021 at 22:40)</a>:</h4>
<p>have to run for now but i'm going to think about this</p>



<a name="235427185"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235427185" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235427185">(Apr 20 2021 at 22:40)</a>:</h4>
<p>sorry for the long delay, <span class="user-mention" data-user-id="119031">@Esteban Küber</span> !</p>



<a name="235427274"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235427274" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235427274">(Apr 20 2021 at 22:41)</a>:</h4>
<p>no problem, thanks for taking a look at it</p>



<a name="235427407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235427407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235427407">(Apr 20 2021 at 22:42)</a>:</h4>
<p>Looking at the diff, I feel like I tried something very similar, but it's been long enough that I don't remember where I might have diverged (because for some reason or another it didn't work as expected for me)</p>



<a name="235431365"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/235431365" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#235431365">(Apr 20 2021 at 23:24)</a>:</h4>
<p>I might want to make it more selective</p>



<a name="240537327"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/240537327" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#240537327">(May 27 2021 at 21:55)</a>:</h4>
<p><span class="user-mention" data-user-id="119031">@Esteban Küber</span> are you around by any chance?</p>



<a name="240537375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/240537375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#240537375">(May 27 2021 at 21:56)</a>:</h4>
<p>Yes, 'sup?</p>



<a name="240539432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/240539432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#240539432">(May 27 2021 at 22:19)</a>:</h4>
<p>I was looking at your PR -- I'm going to try and get a build going with fewer knobs that fails and see why</p>



<a name="240539437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/240539437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#240539437">(May 27 2021 at 22:19)</a>:</h4>
<p>but I got distracted :)</p>



<a name="240540446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/240540446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#240540446">(May 27 2021 at 22:33)</a>:</h4>
<p>No problem. Anything I can help with in that front?</p>



<a name="240540460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/PR%20%2383915/near/240540460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/PR.20.2383915.html#240540460">(May 27 2021 at 22:33)</a>:</h4>
<p>to preempt work on your side?</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>